package model.prestamos.estado;

import model.cuota.Cuota;
import model.prestamos.Prestamo;

/**
 * @author Lucas
 */
public abstract class PrestamoActivo extends EstadoPrestamo {
	
	@Override
	public boolean adeudaCuotas(Prestamo prestamo) {
		return prestamo.tieneCuotasVencidas();
	}
	
	@Override
	public boolean estaActivo(){
		return true;
	}
	
	@Override
	public void cobrarCuota(Prestamo prestamo) {
		Cuota ultimaCuotaImpaga;

		//Por precondicion se sabe que el prestamo activo tiene al menos una cuota impaga
		for(Cuota cuota : prestamo.getCuotas()){
    		if( ! cuota.estaPaga() ){
    			ultimaCuotaImpaga = cuota;
    			ultimaCuotaImpaga.pagar();
    			prestamo.updateEstado();
    			break;
    		}
    	}
	}
}
